The present application describes systems and techniques relating to client-side modification of electronic documents in a client-server environment, for example, transmitting document specific instructions along with data from a server to a client to modify a final format electronic document at the client to accommodate the data.
A client-server environment is a network architecture in which clients generally rely on servers for resources, such as files, databases, devices, processing power, etc. The World Wide Web and its associated Web servers and Web browsers are a typical example of a client-server environment using an existing underlying network (e.g., the Internet) for communications. The World Wide Web generally presents server resources to clients in a context of virtual pages, which are blocks of data to be presented in a visual display. Each virtual page is typically stored as a Hypertext Markup Language (HTML) document and typically contains hyperlinks. A hyperlink may be any link to a server resource, including another virtual page or another file identified by a Universal Resource Identifier (URI), or a server process (e.g., a button on a Web page that causes a server to search a database, run a program, generate a new Web page, etc., is also a hyperlink).
HTML is a markup language, derived from Standard Generalized Markup Language (SGML), for electronic documents. Predefined tags are typically used in HTML documents to define the semantic value of data within the file, including tags defining how the document should look when presented as a virtual page on a client display or when printed. HTML includes tags for identifying and interpreting scripting code, such as JavaScript, which is commonly used to add animation or advertisements to an HTML page. These tags typically specify the timing of interpreting the scripting code. For example, a function performed by the scripting code may be temporally coupled with a specific action, such as opening of the HTML page, closing of the HTML page, or clicking of a button by a user.
In general, HTML documents stay true to the client-server model, that is, traditional HTML involves a server sending electronic documents containing formatting, or presentation, information. Thus, changes that need to be made to an HTML document to respond to a client request for data generally result in a new HTML document being sent from the server to the client. However, different types of HTML exist. For example, dynamically produced HTML (e.g., Active Server Pages) is a server-side implementation variation of standard HTML, in which different requests for an HTML page may result in different versions of the HTML page being sent based on processing at the server (e.g., two clients in different geographic locales may receive different HTML pages in response to two requests having the same URI). In contrast, Dynamic HTML is a new type of HTML in which a Web page may contain machine instructions (e.g., scripts) that allow a downloaded Web page to react and change at the client in response to user inputs without sending a request to the server.
Conventional HTML files may include tags for use in creating virtual forms that a user may fill out using a Web browser. HTML does not generally separate tags relating to data type semantics from tags relating to data presentation semantics. Thus traditional HTML forms mix data collection information with data presentation information in the same document.
Efforts are underway to remove the mixing of data collection information with data presentation information in traditional HTML forms. The World Wide Web Consortium (W3C) is creating “XForms”, which is a specification of Web forms that uses the Extensible Markup Language (XML) to separate form data into sections that describe what the form does (data type semantics stored in XML), and sections that describe how the form should look (data presentation semantics stored in XHTML (Extensible HTML)). (See http://www-w3-org/MarkUp/Forms/) When data in the form needs to change, a Web server may send new data to the Web browser in the XML format. When presentation format of the form needs to change, the Web server may send a new XHTML document.
In general, each HTML document may be thought of as a single virtual page, regardless of whether the document is stored as traditional HTML or XHTML. An HTML document generally has no ability to specify which portions of the document will appear on which physical pages when printed. In fact, a publisher of an HTML document has no final control over how the document will appear to an end user, because presentation of an HTML document, either by display on a monitor or by printing, is determined by the Web browser, which interprets the HTML tags.
In contrast, a final format document is an electronic document describing one or more virtual pages having a predetermined final format. The predetermined final format defines a specific visual appearance for the electronic document when displayed or printed. A final format document generally provides a device-independent and resolution-independent format for publishing and/or distributing electronic documents. Thus, a final format document is conventionally a file that lies between a layout program and the typical raster image processors, which drive traditional printing apparatus.
The final format generally allows a publisher to control the look and feel of the document as seen by an end user, including the specific physical page or pages on which information appears when printed or displayed. Thus, the final format should generally support and preserve all visual formatting features (e.g., fonts, graphics, color, etc.) of any source document, regardless of the source computer platform and/or software application used to create the source document. The ability to control final appearance, or look-and-feel, of an electronic document as viewed by a reader can be a critical branding issue for businesses and other publishing organizations, and is particularly useful when available across various computer platforms.
An example of a final format is the PORTABLE DOCUMENT FORMAT (PDF) developed by Adobe Systems, Inc. of San Jose, Calif. Example software for creating and reading PDF documents is the ACROBAT™ software, also of Adobe Systems, Inc. The Adobe ACROBAT™ software is based on Adobe's POSTSCRIPT® technology which describes formatted pages of a document in a device-independent fashion.
Final format documents may be used in client-server environments. For example, on the World Wide Web, PDF documents are commonly used to present various types of information to, and also to obtain information from, Web users. A final format document may store a form, which users can fill in and/or print out, or which a server can modify to include data specific to a user. For example, Forms Data Format (FDF) is a data representation format developed by Adobe Systems, Inc. to allow importing of data into an existing PDF document. FDF files may be used to submit data to a server, or to receive data from a server. FDF Toolkit is an application program interface (API) developed by Adobe Systems, Inc. to facilitate the writing of server applications to generate and/or parse FDF data from a form created by the Adobe ACROBAT™ Forms plug-in.